home *** CD-ROM | disk | FTP | other *** search
- /* rexx macro */
-
- options results /* enable return codes */
-
- if (left(address(), 6) ~= "GOLDED") then /* not started by GoldEd ? */
-
- address 'GOLDED.1'
-
- 'LOCK CURRENT RELEASE=4' /* lock GUI, gain access */
-
- if (RC ~= 0) then
-
- exit
-
- options failat 6 /* ignore warnings */
-
- signal on syntax /* ensure clean exit */
-
- /* ------------------------- INSERT YOUR CODE HERE: -------------------- */
-
- /* INPUT: SOFTWARE/K,FLAVOUR/K (supported values: SAS/C,SAS/C-GNUMAKE,VBCC,DICE,DICE-GNUMAKE,STORMC,GENERIC) */
-
- parse arg SOFTWARE FLAVOUR .
-
- SOFTWARE = upper(SOFTWARE)
- FLAVOUR = upper(FLAVOUR )
-
- if (SOFTWARE = "") then
-
- SOFTWARE = "GENERIC"
-
- if (FLAVOUR = "") then
-
- FLAVOUR = "C"
-
- 'QUERY CAT'
-
- if (RESULT = "deutsch") then do
-
- STRING.sMAKEFILE = "Makefile auswählen"
- STRING.sUNSUPPORTED = "Diese Funktion wird von der aktuellen|C/C++-Umgebung nicht unterstützt !"
- STRING.sOPENERROR = "Zugriff auf makefile nicht möglich !"
- STRING.sNOCHANGES = "Hinweis: Makefile wurde nicht|geändert"
- end
- else do
-
- STRING.sMAKEFILE = "Select Makefile"
- STRING.sUNSUPPORTED = "This function is not supported|by the current C/C++ mode !"
- STRING.sOPENERROR = "Can not access the makefile !"
- STRING.sNOCHANGES = "Note: Makefile remains unchanged"
- end
-
- if (SOFTWARE = "GCC") then do
-
- 'QUERY PATH VAR=PATH'
-
- R = pragma('D', PATH)
-
- /* locate makefile for current compiler */
-
- call findmakefile(SOFTWARE)
-
- if (MAKEFILE = "") then do
-
- 'REQUEST FILE TITLE="' || STRING.sMAKEFILE || '" PATH="' || PATH || '" VAR=MAKEFILE'
-
- if (RC ~= 0) then do
-
- 'UNLOCK'
-
- exit
- end
- end
-
- if (FLAVOUR = "C") then do
-
- FIND = "g++"
- SUBSTITUTE = "gcc"
- end
- else do
-
- FIND = "gcc"
- SUBSTITUTE = "g++"
- end
-
- if (MAKEFILE ~= "") then do
-
- /* read and update makefile */
-
- LINES = 0
-
- if open('MAKEFILE', MAKEFILE, 'READ') then do
-
- CHANGES = 0
-
- do until eof('MAKEFILE')
-
- DATA = readln('MAKEFILE')
-
- /* look for compiler in indented lines and in definition of CC */
-
- if (LEFT(DATA, 4) = '9'X || FIND) then do
-
- DATA = '9'X || SUBSTITUTE || substr(DATA, 5)
-
- CHANGES = CHANGES + 1
- end
-
- if (UPPER(LEFT(DATA, 2)) = "CC") then do
-
- POS = INDEX(DATA, FIND)
-
- if ((POS ~= 0) & (POS < 8)) then do
-
- DATA = substr(DATA, 1, POS - 1) || SUBSTITUTE || substr(DATA, POS + 3)
-
- CHANGES = CHANGES + 1
- end
- end
-
- LINES = LINES + 1
-
- CONFIG.LINES = DATA
- end
-
- R = close('MAKEFILE')
-
- if (CHANGES ~= 0) then do
-
- /* save updated makefile */
-
- if open('MAKEFILE', MAKEFILE, 'WRITE') then do
-
- if (LINES ~= 0) then do
-
- do LINE=1 to (LINES - 1)
-
- R = writeln('MAKEFILE', CONFIG.LINE)
- end
- end
-
- R = close('MAKEFILE')
- end
- end
-
- if (CHANGES = 0) then
-
- 'REQUEST PROBLEM="' || STRING.sNOCHANGES || '"'
- end
- else
- 'REQUEST PROBLEM="' || STRING.sOPENERROR || '"'
- end
- end
- else
- 'REQUEST PROBLEM="' || STRING.sUNSUPPORTED || '"'
-
- /* ---------------------------- END OF YOUR CODE ----------------------- */
-
- 'UNLOCK' /* VERY important: unlock GUI */
-
- EXIT
-
- SYNTAX:
-
- SAY "Sorry, error line" SIGL ":" ERRORTEXT(RC) ":-("
-
- 'UNLOCK'
-
- EXIT
-
- /* /// "findmakefile" */
-
- findmakefile: procedure expose STRING. PATH MAKEFILE
-
- parse arg SOFTWARE
-
- MAKEFILE = ""
-
- /* will any makefile do or is a specific type requested ? */
-
- 'QUERY OPTIONCHOOSEMAKEFILE VAR=OPTIONCHOOSEMAKEFILE'
-
- if (OPTIONCHOOSEMAKEFILE = "TRUE") then do
-
- 'REQUEST FILE TITLE="' || STRING.sMAKEFILE || '" PATH="' || PATH || '" VAR=MAKEFILE'
-
- if (RC ~= 0) then do
-
- 'UNLOCK'
-
- exit
- end
- end
- else do
-
- if (SOFTWARE = "") then do
-
- if (exists("dmakefile")) then
-
- MAKEFILE = "dmakefile";
-
- else if (exists("smakefile")) then
-
- MAKEFILE = "smakefile";
-
- else if exists("makefile") then
-
- MAKEFILE = "makefile";
- end
- else do
-
- if (SOFTWARE = "DICE") then do
-
- if (exists("dmakefile")) then
-
- MAKEFILE = "dmakefile";
- end
- else if (SOFTWARE = "SAS/C") then do
-
- if (exists("smakefile")) then
-
- MAKEFILE = "smakefile";
- end
- else do /* GENERIC, VBCC, SAS/C-GNUMAKE, DICE-GNUMAKE */
-
- if exists("makefile") then
-
- MAKEFILE = "makefile";
- end
- end
- end
-
- return
-
- /* /// */
-